package com.ynet.middleground.riskmanage.bean.hangxin;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.ynet.core.common.BaseReqObj;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;

/**
 * @author songyf
 * @description 获取开票结果参数信息
 * @date 2021-11-05 16:04
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "Fpxm", description = "Fpxm")
public class Fpxm implements Serializable {

    private static final long serialVersionUID = 3876480733030524303L;
    @XStreamAlias("FPHXZ")
    @ApiModelProperty(value = "发票行性质,0 正常行、 3 被折扣行、 4折扣行 （折扣行处理见附录6.3）",
        notes = "发票行性质,0 正常行、 3 被折扣行、 4折扣行 （折扣行处理见附录6.3）", required = true)
    @NotEmpty(message = "发票行性质不能为空")
    private String fphxz;

    @ApiModelProperty(value = "项目名称,2018年后简称需求要求格式为 “*简称*商品名称,简称必须使用税收分类编码中SPBMJC字段标注内容",
        notes = "项目名称,2018年后简称需求要求格式为 “*简称*商品名称,简称必须使用税收分类编码中SPBMJC字段标注内容", required = true)
    @NotEmpty(message = "项目名称不能为空")
    @XStreamAlias("XMMC")
    private String xmmc;

    @ApiModelProperty(value = "规格型号", notes = "规格型号", required = true)
    @NotEmpty(message = "规格型号不能为空")
    @XStreamAlias("GGXH")
    private String ggxh;

    @ApiModelProperty(value = "计量单位", notes = "计量单位", required = true)
    @NotEmpty(message = "分机号不能为空")
    @XStreamAlias("JLDW")
    private String jldw;

    @ApiModelProperty(value = "项目数量.小数点后8位", notes = "项目数量,小数点后8位")
    @XStreamAlias("XMSL")
    private String xmsl;

    @ApiModelProperty(value = "不含税单价,小数点后 8 位， 不含税", notes = "不含税单价,小数点后 8 位， 不含税")
    @XStreamAlias("XMDJ")
    private String xmdj;

    @ApiModelProperty(value = "不含税金额,单位：元（ 2 位小数），不含税", notes = "不含税金额,单位：元（ 2 位小数），不含税", required = true)
    @NotEmpty(message = "不含税金额不能为空")
    @XStreamAlias("XMJE")
    private String xmje;

    @ApiModelProperty(value = "税率,2 位小数。例如 1%为 0.01", notes = "税率,2 位小数。例如 1%为 0.01", required = true)
    @NotEmpty(message = "税率不能为空")
    @XStreamAlias("SL")
    private String sl;

    @ApiModelProperty(value = "税额,单位：元（ 2 位小数）", notes = "税额,单位：元（ 2 位小数）", required = true)
    @NotEmpty(message = "税额不能为空")
    @XStreamAlias("SE")
    private String se;

    @ApiModelProperty(value = "含税单价,小数点后 8 位", notes = "含税单价,小数点后 8 位")
    @XStreamAlias("HSDJ")
    private String hsdj;

    @ApiModelProperty(value = "含税金额,单位：元（ 2 位小数）项目金额+税额", notes = "含税金额,单位：元（ 2 位小数）项目金额+税额", required = true)
    @NotEmpty(message = "含税金额不能为空")
    @XStreamAlias("HSJE")
    private String hsje;

    @ApiModelProperty(value = "商品编码,税收分类编码", notes = "商品编码,税收分类编码", required = true)
    @NotEmpty(message = "商品编码不能为空")
    @XStreamAlias("SPBM")
    private String spbm;

    @ApiModelProperty(value = "是否优惠政策,0：不使用，1：使用", notes = "是否优惠政策,0：不使用，1：使用", required = true)
    @NotEmpty(message = "是否优惠政策不能为空")
    @XStreamAlias("SFYHZC")
    private String sfyhzc;

    @ApiModelProperty(value = "优惠政策内容", notes = "优惠政策内容")
    @XStreamAlias("YHZCNR")
    private String yhzcnr;

    @ApiModelProperty(value = "空：非零税率，0：出口退税，1：免税，2：不征收，3：普通零税率", notes = "空：非零税率，0：出口退税，1：免税，2：不征收，3：普通零税率")
    @XStreamAlias("LSLBS")
    private String lslbs;
}
